Project Policies
Projects must be truly interactive, must involve both visual
and auditory content, and must demonstrate an understanding of
the concepts covered in class. Projects need not involve original
concepts (i.e., you don't need to come up with a novel idea).
1 Topics
Broadly speaking there are three different kinds of projects,
applications for general users, applications for content developers,
and libraries.
1.1 Applications for General Users
This type of project involves an application that has broad
applicability but makes use of both auditory and visual content.
These kinds of applications tend to be in one of the following
domains.
1.1.1 Advertising and Marketing
Possible projects in advertising and marketing include:
a multimedia market research system, a multimedia catalog, an
interactive/animated advertisement system, "I Bleed Purple"
images/animations, and a JMU trivia game.
1.1.2 Education and Training
Possible education and training projects include: a classroom
monitoring system, a course on music/art appreciation, a
slide-show editor, demonstrations of important concepts from
mathematics and the sciences (e.g., spread of influenza,
simulation of a bullet shot at a falling target, simulation of
inherited traits), demonstration of important concepts from
computer science (e.g., a simulation of the Internet or a
particular protocol, demonstration of encryption processes,
steganography), demonstration of important concepts from the
social/behavioral sciences (e.g., multimedia microeconomics
lesson, election results over time, simulation of a room
evacuation, toll booth or other queueing simulator), a proof
of concept of an exercise training system or sign language
training system, a game that teaches fractions, and a game
that teaches geography.
1.1.3 Entertainment
Possible entertainment projects include: a closed-captioning system,
a digital photograph
selector (select, organize, and renumber photos), a Karaoke
system, a video game, a fish tank in which the fish respond
to spectators, a system for creating/displaying animated
greeting cards with personalized audio, an interactive
children's book, and an interactive science fiction story.
1.1.4 Personal and Business Information Services
Possible projects in the area of personal and business
information services include: a financial information
service, an interactive electronic version of The Breeze,
a traffic information service, a world news service,
a sports information service, and an entertainment information service.
1.1.5 Travel and Tourism
Possible travel and tourism projects include: a hotel management
system, an in-flight tracking system, an interactive model
of the campus, an interactive model of the Harrisonburg area, an
interactive model of a National Park
1.2 Applications for Content Developers
This type of project involves an application that is targeted at
a visual content developer or auditory content developer, but still makes
use of the other kind of content.
Examples include image processing systems (e.g., Gimp), vector
drawing systems (e.g., Inkscape), sampled auditory content editors
(e.g., Audacity), and described auditory content editors.
1.3 Libraries
All semester you've used a library that was written for the textbook.
As you know, this library is somewhat limited. Projects in this category
are intended to overcome these limitations.
Examples include libraries for: handling game "levels", for
saving and retrieving game state in a flexible way, for handling
additional content formats (either auditory or visual).
A successful library project will be usable by students taking this
course in the future.
2 Proposal/Initial Product Backlog
You must get your project approved in advance.
You must submit proposal that includes: a list of team members,
a brief description of the product,
and a prioritized list of features that you intend to include in the
product. See the syllabus for due dates.
3 Collaboration
You may work on the project in groups (of up to 4 people). The size
of the project must be commensurate with the size of the group.
4 Materials
All code, pictures and sounds must be original (i.e.,
do not plagiarize and do not infringe on any copyrights). You may
use code developed/used for lectures or assignments.
5 Platform/Environment
All projects must work as an application Linux/UNIX as it is
installed in the Departmental classrooms. This means that your code
must be compiled using v17 of the Java Development Kit (JDK) Standard
Edition. (Ideally, they should also
work under Windows and OS-X, but this is not required.)
Projects that do not satisfy this requirement will receive a
grade of 0.
6 Visibility
All projects will be publicly available on the course WWW site
(after the presentations).
7 Hints and Tips
1. As discussed in the book, the classes we developed for rendering
and processing auditory content do not use memory efficiently.
Hence, if you use them you will need to use small audio clips. If
you do not need to perform operations on the auditory content, you
should probably use AudioClip
objects directly.
(Also, remember that there is a typo in the book and you should decorate
the InputStream
as a BufferedInputStream
before constructing an AudioInputStream
so that it will
support mark()
and reset()
even if it
is inside of a .jar
file.) For example, you could
use the following ClipContent
class:
2. You may need to create some other SimpleContent
classes to get your application to do what you want it to do.
The following classes might help get you started:
which are used in the following demo:
3. Regardless of the version of the compiler you are using, you
can change the "target" runtime using the -source
and -target
options. So, for example, you can compile
to version 17 as follows:
javac -source 17 -target 17 *.java
8 Submissions
Groups must submit
ALL materials associated with their
projects on the "due date". They must be submitted by only one member
of the group.
All code and documentation written for the final project must
conform to the course style guides. Submissions that do not
conform to the course style guide and/or the above guidelines will
not be accepted.
8.1 Design Materials
Design materials must be submitted using Canvas. They must be in
a single .zip
file named design.zip
.
8.2 Source Code
Source code must be submitted using Canvas. It must be
packaged appropriately in a file
named source.zip
. It must conform to the course
style guide.
8.3 Executable Code
Executable code must be submitted using Canvas. It must be in a
single executable .jar
file
a name that is related
to the project, but containing no spaces or special characters
(e.g., BugBattle.jar
).
8.4 External Documentation
You must submit (using Canvas) a file named
readme.txt
that explains how to run the
application. This file must also contain a
section that describes all "known bugs".
You must also submit (using Canvas) a .zip
file
named documentation.zip
that contains the HTML
documentation generated by javadoc
.
9 Presentations
Each group must present their project in class. Presentation
times will
NOT be announced in advance. Groups must be
prepared to present at any time during the "presentation period".
Presentations will make use of
ONLY the materials
submitted on the "due date".
Each presentation will last about 5 minutes, including setup time
and questions (though the exact length will depend on the number
of groups). "Intermediate" presentations must include a brief
description of the product and a demonstration of the working
product. Final presentations must include a brief description of
the product, a brief demonstration of the product, a discussion of
the design, and a discussion of any implementation issues that
arose.
Presentations must be informative (i.e., your fellow students must
learn something from your presentation, not just be entertained)!
10 Grading
Projects will be evaluated primarily based on
their technical merit (i.e., aesthetic issues will only have a
minor impact on grades). To that end, your design and
implementation should be: rugged (i.e., reliable, robust, and safe),
easy to repair and enhance, easy to understand and use, and easy to
re-use. For example, if your project is a game that
needs to display scores, a good design/implementation will include
classes that could easily be used in other games.
10.1 Presentations
While I do not require attendance in general, I do require
(as a matter of courtesy/collegiality) that all
students attend all presentations. Students who do not attend
all presentations will be penalized (i.e., their grade on the project
will be significantly reduced).
10.2 Peer Evaluations
All students must participate in the evaluation process.
Students who do not participate in the evaluation process
will receive a grade of 0 for the final project.
You will be provided with a form for evaluating yourself and the
members of your group. Your grade will be based, in part, on
both your evaluations and the "appropriateness" of your
evaluations (i.e., how consistent your evaluations are with my
evaluations). If your evaluations are significantly different
from mine, you will be given an opportunity to justify your
evaluations. If you can't convince me that your evaluations were
"appropriate", your grade will be reduced accordingly.